home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks ’87 / Source ƒ.sit / Source ƒ / C ƒ / TCOMMPRO.TXT / IBMPCIO.H < prev    next >
Text File  |  1987-01-14  |  5KB  |  133 lines

  1. /**
  2. *
  3. * This header file defines the information used for IBM PC I/O
  4. * and Lattice C.
  5. * Copyright (c) 1984, 1985 Larry Jordan Associates
  6. *
  7. **/
  8.  
  9.  
  10.  
  11. /**
  12. ;----------------------------------------------------------|
  13. ;                               |
  14. ;   EQUATES FOR COMM PORT AND MODEM CONTROL           |
  15. ;                               |
  16. ;----------------------------------------------------------|
  17. **/
  18.  
  19. /* ------------ HAYES Smartmodem controls ----------------- */
  20.  
  21. #define MOATN     "AT"
  22. #define MORESET  "ATZ"
  23. #define MOANSWER  "ATA"
  24. #define MONOANS   "ATS0=0"
  25. #define MOAUTOAN  "ATS0=1"
  26. #define MOSPKOFF "ATM0"
  27. #define MOECHOFF  "ATE0"
  28. #define OFFHOOK   "ATH1"
  29. #define MORESPAC 20000           /* modem response delay for buffer clear */
  30. #define MOCMDPAC 10000        /* command spacing for modem */
  31. #define WAITCD      50000      /* riduclous wait for carrier */
  32. #define WAITFORC  30         /* wait 30 seconds for carrier after connect */
  33.  
  34.  
  35. /* ------------ Greenleaf assignments ---------------------- */
  36.  
  37. #define PORT1 0
  38. #define PORT2 1
  39. #define NONE 0
  40. #define EVEN 2
  41. #define ODD 1
  42.  
  43. /**
  44. ;------ BIOS RS-232 IO Parameter Masks ------------------------------
  45. **/
  46.  
  47. #define  _300E71  0x05A       /* PARMS: 300, EVEN, 7, 1        */
  48. #define  _300N81  0x043       /* PARMS: 300, NONE, 8, 1        */
  49. #define  _1200E71 0x09A       /* PARMS: 1200, EVEN, 7, 1       */
  50. #define  _1200N81 0x083       /* PARMS: 1200, NONE, 8, 1       */
  51. #define  _2400E71 0x0BA       /* PARMS: 2400, EVEN, 7, 1       */
  52. #define  _2400N81 0x0A3       /* PARMS: 2400, NONE, 8, 1       */
  53. #define  _9600E71 0x0FA       /* PARMS: 9600, EVEN, 7, 1 (WOW!)*/
  54. #define  _9600N81 0x0E3       /* PARMS: 9600, NONE, 8, 1       */
  55.  
  56.  
  57. #define  P300E71  "300,E,7,1"     /* PARMS: 300, EVEN, 7, 1        */
  58. #define  P300N81  "300,N,8,1"     /* PARMS: 300, NONE, 8, 1        */
  59. #define  P600E71  "600,E,7,1"     /* PARMS: 300, EVEN, 7, 1        */
  60. #define  P600N81  "600,N,8,1"     /* PARMS: 300, EVEN, 7, 1        */
  61. #define  P1200E71 "1200,E,7,1"    /* PARMS: 1200, EVEN, 7, 1       */
  62. #define  P1200N81 "1200,N,8,1"    /* PARMS: 1200, NONE, 8, 1       */
  63. #define  P2400E71 "2400,E,7,1"    /* PARMS: 2400, EVEN, 7, 1       */
  64. #define  P2400N81 "2400,N,8,1"    /* PARMS: 2400, NONE, 8, 1       */
  65. #define  P4800E71 "4800,E,7,1"    /* PARMS: 2400, EVEN, 7, 1       */
  66. #define  P4800N81 "4800,N,8,1"    /* PARMS: 2400, NONE, 8, 1       */
  67. #define  P9600E71 "9600,E,7,1"    /* PARMS: 9600, EVEN, 7, 1 (WOW!)*/
  68. #define  P9600N81 "9600,N,8,1"    /* PARMS: 9600, NONE, 8, 1       */
  69.  
  70.  
  71. /**
  72. ;----- TECHNICAL REF 8250 PORT ADDRESS (PAGE 2-125) -----------------
  73. **/
  74.  
  75. /* COM1: port addresses */
  76.  
  77. #define COM1BASE 0x03F8        /* UART 1 BASE ADDRESS            */
  78. #define LSR1 0x03FD       /* UART LINE STATUS REGISTER ADDRESS     */
  79. #define LCR1 0x03FB       /* UART LINE CONTROL REGISTER        */
  80. #define MSR1 0x03FE       /* UART MODEM STATUS (DTR,RTS)        */
  81. #define MCR1 0x03FC       /* UART MODEM CONTROL REGISTER (DTR,RTS) */
  82. #define IER1 0x03F9       /* UART INTERRUPT ENABLE REGISTER        */
  83. #define IIR1 0x03FA       /* UART INTERRUPT IDENTIFY REG        */
  84.  
  85. #define PORTCOM1 "COM1:"
  86. #define COM1 "COM1"
  87.  
  88. /* COM2: port addresses */
  89.  
  90. #define COM2BASE 0x02F8        /* UART 2 BASE ADDRESS            */
  91. #define LSR2 0x02FD       /* UART LINE STATUS REGISTER ADDRESS     */
  92. #define LCR2 0x02FB       /* UART LINE CONTROL REGISTER        */
  93. #define MSR2 0x02FE       /* UART MODEM STATUS (DTR,RTS)        */
  94. #define MCR2 0x02FC       /* UART MODEM CONTROL REGISTER (DTR,RTS) */
  95. #define IER2 0x02F9       /* UART INTERRUPT ENABLE REGISTER        */
  96. #define IIR2 0x02FA       /* UART INTERRUPT IDENTIFY REG        */
  97.  
  98. #define PORTCOM2 "COM2:"
  99. #define COM2 "COM2"
  100.  
  101.  
  102. /**
  103. ;------ MODEM CONTROL REGISTER MASKS (TECH REF 2-142) ----------------
  104. **/
  105.  
  106. #define DTR_ON     0x1    /*  TURN UART DATA TERMINAL SIGNAL ON  */
  107. #define DTR_OFF  0x0    /*  TURN UART DATA TERMINAL READY OFF  */
  108. #define STS_ON     0x2    /*  turn on UART Request to Send signal */
  109. #define IGNORECD 0x8    /*  Turn on MCR Out 2 signal to ignore Carrier Detect */
  110.             /*  exist to allow talk to modem when no carrier */
  111. #define WATCHCD  0x3    /*  Mask for MCR Out 2 signal to watch Carrier Detect */
  112. #define DTR_CD     0x9    /*  Mask to check for DTR and CD before Out 2 turn on */
  113.  
  114.  
  115.  
  116. /**
  117. ;------ LINE STATUS REGISTER MASKS (TECH REF PAGE 2-137) ----------------
  118. **/
  119.  
  120. /* LSR BITS SET TO 1 WHEN TRUE          */
  121.  
  122. #define DATA_READY  0x1   /* BIT 0 IS SET WHEN A CHARACTER HAS        */
  123.               /* BEEN RECEIVED INTO RECV BUFFER REG     */
  124. #define OVERRUN    0x2      /* BIT 1 IS SET ON OVERRUN ERROR        */
  125. #define PARITY       0x4      /* BIT 2 IS SET ON PARITY ERROR        */
  126. #define FRAME       0x8      /* BIT 3 SET ON FRAMING ERROR         */
  127. #define BREAK       0x10   /* BIT 4 SET ON BREAK SIGNAL INTERRUPT    */
  128.  
  129. #define TS_EMPTY   0x40   /* TRANS BUFFER EMPTY STATUS FLAG        */
  130. #define TX_EMPTY   0x20   /* TRANSMIT REG EMPTY -- ANOTHER CHAR CAN */
  131.               /*               NOW BE SENT        */
  132.  
  133.